/**
 * created by liuwanjun@agree.com.cn 2019-5-10
 *
 * 导出 Excel 方法
 * @param {Array} header 导出数据的表头 必填
 * @param {Array} filterVal 表格导出字段 必填
 * @param {Array} tableData 表格导出数据 必填
 * @param {Array} multiHeader 多级表头 二维数组 [['id', 'name', '', 'age']]
 * @param {Array} merges 合并单元格 ['A1:A2', 'B1:D1', 'E1:E2']
 * @param {String} filename 导出文件名[非必输] 默认值excel-list
 * @param {Boolean} autoWidth 单元格是否要自适应宽度[非必输] 可选值true/false 默认值true
 * @param {String} bookType 导出文件类型[非必输] 可选值xlsx、csv、txt 默认值xlsx
 */
function exportExcel(header, filterVal, tableData, filename, autoWidth, bookType, multiHeader, merges) {
  import('@/common/utils/Export2Excel').then(excel => {
    const data = formatJson(filterVal, tableData)
    excel.export_json_to_excel({
      multiHeader,
      merges,
      header,
      data,
      filename,
      autoWidth,
      bookType
    })
  })
}

function formatJson(filterVal, jsonData) {
  return jsonData.map(v => filterVal.map(j => v[j]))
}

export default exportExcel
